home *** CD-ROM | disk | FTP | other *** search
- /* $Id: ckmrem.c,v 1.5 91/12/15 23:17:48 rick Exp $
- * $Source: /uw/mackermit/RCS/ckmrem.c,v $
- *------------------------------------------------------------------
- * $Log: ckmrem.c,v $
- * Revision 1.5 91/12/15 23:17:48 rick
- * ut9
- *
- * Revision 1.4 91/10/13 13:44:24 rick
- * UT(7)
- *
- * Revision 1.3 91/10/03 12:42:59 rick
- * UT(5)
- *
- * Revision 1.2 91/09/25 12:17:25 rick
- * Command window in TE. Multiple vt100 windows for command window.
- *
- * Revision 1.3 1991/09/25 14:45:26 rick
- * Multiple vt100 window support for command window.
- *
- * Revision 1.2 1991/09/16 17:03:14 rick
- * Command window in TE
- *
- *------------------------------------------------------------------
- * $Endlog$
- */
-
- /* Version 0.8(35) - Jim Noble at Planning Research Corporation, June 1987. */
- /* Ported to Megamax native Macintosh C compiler. */
-
- /*
- * file ckmrem.c
- *
- * Module of MacKermit containing code for remote commands and the display
- * of remote commands.
- *
- */
-
- /*
- Copyright (C) 1985, 1992, Trustees of Columbia University in the City of New
- York. Permission is granted to any individual or institution to use this
- software as long as it is not sold for profit. This copyright notice must be
- retained. This software may not be included in commercial products without
- written permission of Columbia University.
- */
-
- #include "ckcdeb.h"
- #include "ckcasc.h"
- #include "ckcker.h"
-
- #include "ckmdef.h" /* General Mac defs */
- #include "ckmres.h" /* Resource file defs */
- #include "ckmwin.h" /* common window defs */
- #include "ckmptp.h" /* ckm* Prototypes */
-
- typedef struct {
- int resid;
- char scode, *name, *hlp1, *hlp2;
- } RCMDTBL;
-
- RCMDTBL remotecmds[] = {
- {CWD_REMO, 'C', "\pCWD", "\pDirectory", "\pPassword"},
- {DEL_REMO, 'E', "\pDelete", "\pFilespec", ""},
- {DIR_REMO, 'D', "\pDirectory", "\pFilespec", ""},
- {HELP_REMO, 'H', "\pHelp", "\pTopic", ""},
- {HOST_REMO, ' ', "\pHost", "\pCommand", ""},
- {SPAC_REMO, 'U', "\pSpace", "\pArea", ""},
- {TYPE_REMO, 'T', "\pType", "\pFilespec", ""},
- {WHO_REMO, 'W', "\pWho", "\pUser ID", "\pOptions"},
- {0, 0, NILPTR, NILPTR, NILPTR}};
-
-
-
- /****************************************************************************/
- /* Remote command dialog */
- /* remotedialog - returns FALSE if cancel hit, TRUE otherwise with */
- /* generic command setup in gstr. */
- /****************************************************************************/
- int
- remotedialog (rid, gstr)
- int rid;
- char *gstr;
- {
- short itemhit;
- short itemtype;
- int i;
- DialogPtr remoteDialog;
- Handle itemhdl;
- Rect itemrect;
- RCMDTBL *rcmdh = (RCMDTBL *) NULL;
- char arg1[256], arg2[256];
-
- for (i = 0; remotecmds[i].resid != 0; i++) /* locate remote command */
- if (remotecmds[i].resid == rid) /* record for this command */
- rcmdh = &remotecmds[i]; /* set our handle */
-
- if (rcmdh == (RCMDTBL *) NULL) { /* find anything? */
- printerr ("Can't find remote command info for ", rid); /* ugh... */
- return (FALSE);
- }
- remoteDialog = GetNewDialog (REMOTEBOXID, NILPTR, (WindowPtr) - 1);
- circleOK(remoteDialog);
-
- /* setup variables */
- ParamText (rcmdh->name, rcmdh->hlp1, rcmdh->hlp2, "");
-
- /* second argument? no, remove from screen */
- if (Length (rcmdh->hlp2) == 0) {
- GetDItem (remoteDialog, RRES_ARG2, &itemtype, &itemhdl, &itemrect);
- if (itemtype != editText)
- printerr ("RRES_ARG2 is not editText!", 0); /* ugh now we die! */
- itemtype |= itemDisable;/* disable it */
- SetRect (&itemrect, 1044, 20, 1145, 116); /* off the end of our
- * world */
- SetDItem (remoteDialog, RRES_ARG2, itemtype, itemhdl, &itemrect);
- }
- for (;;) {
- ModalDialog ((ModalFilterProcPtr) NILPROC, &itemhit);
- switch (itemhit) {
- case OKBtn:
- GetDItem (remoteDialog, RRES_ARG1, &itemtype, &itemhdl, &itemrect);
- GetIText (itemhdl, arg1);
- p2cstr(arg1);
- GetDItem (remoteDialog, RRES_ARG2, &itemtype, &itemhdl, &itemrect);
- GetIText (itemhdl, arg2);
- p2cstr(arg2);
- if (rid == HOST_REMO)
- strcpy (gstr, arg1);
- else
- /* setup the command */
- ssetgen (gstr, rcmdh->scode, arg1, arg2, "");
-
- case QuitBtn: /* fall through */
- DisposDialog (remoteDialog); /* all done, answer on cterm
- * screen */
- if (itemhit == OKBtn) { /* want to do the command?/ */
- conoc (CR); /* output CR to delimit */
- conoll ("-----"); /* and dashes followed by CR */
- rcmdwshow (rcmdw); /* show Response window */
- }
- return (itemhit == OKBtn); /* and return ok or bad... */
- }
- }
- } /* remotedialog */
-
-
-
-